//1.引入koa
const Koa = require('koa');
const KoaRouter = require('koa-router');
const Fly=require("flyio/src/node")
const fly=new Fly;
const jwt = require('jsonwebtoken');

//2.express()->创建服务器应用实例
const app = new Koa();

//4.注册路由
//4.1express -> app.get 注册路由
//    创建路由器实例
const koaRouter = new KoaRouter();

//3.运行服务器,并监听对应接口
app.listen('3002', (err) => {
	if (err) {
		console.log('服务器启动失败');
	} else {
		console.log('服务器启动成功');
	}
})

//4.2 使用中间件
//koaRouter.routes() 使用路由器内所有的路由
//koaRouter.allowedMethods() 使用路由器所有的方法，并解决报错状态码
app.use(koaRouter.routes()).use(koaRouter.allowedMethods())


//4.3 注册路由
/*
express->实参:
1.request->请求报文对象
2.response->响应报文对象
3.next->执行下一个中间件
koa->实参:
	1.ctx->request+response
	2.next


*/


// 用户获取用户唯一标识openId
koaRouter.get('/getOpenId',async (ctx,next)=>{
	let {code} = ctx.query
	let appId= "wx880c43706ef3064f"
	let appSecret = "ef54b3c935362d416f8a0de7176e83d1"
	let data;
	// 模板字符串
	let url = `https://api.weixin.qq.com/sns/jscode2session?appid=${appId}&secret=${appSecret}&js_code=${code}&grant_type=authorization_code`
	let result = await fly.get(url)
	  // .then((res)=>{
		 //  console.log(res);
	  // })
	data = JSON.parse(result.data);
	let  {openid,session_key} = data 
	//加密jwt.sign(需要加密的数据,salt(盐))
	//盐->提高解密的难度(暴利破解的难度)
	let salt = "lalala"
	let token = jwt.sign(openid,salt)
	//尝试解密token
	//解密jwt.verify (token , salt(盐))
	let newOpenId = jwt.verify(token,salt)
	// ctx.body = data.openid
	ctx.body = token
})
const indexData = require('./datas/index.json');
const categoryDatas = require('./datas/categoryDatas.json');
const indexCateList = require('./datas/indexCateList.json');
const goods = require('./datas/goods.json')
koaRouter.get('/getIndexData',(ctx,next)=>{
	//返回数据
	ctx.body={
		name: indexData
	}
})
koaRouter.get('/getCategoryDatas',(ctx,next)=>{
	//返回数据
	ctx.body={
		name: categoryDatas
	}
})
//获取首页的分类数据
koaRouter.get('/getIndexCateList',async (ctx,next)=>{
	//异步返回延迟
	await new Promise((resolve,reject)=>{
		setTimeout(()=> {
			resolve()
		}, 2000);
	})
	//返回数据
	ctx.body={
		code:200,
		data: indexCateList
	}
})
// 详情页
koaRouter.get('/getGoodDetail',(ctx,next)=>{
	let {id} = ctx.query
	let good = goods.find(item=>{return item.id===id*1})
	//返回数据
	ctx.body=good 
})
